Add Ricoh 500SE support
authorrobertl <robertl>
Sat, 18 Jul 2009 21:18:36 +0000 (21:18 +0000)
committerrobertl <robertl>
Sat, 18 Jul 2009 21:18:36 +0000 (21:18 +0000)
Add TRACK_NEW to XCSV.

csv_util.c
internal_styles.c
style/ricoh.style [new file with mode: 0644]
xcsv_tokens.gperf
xcsv_tokens.in
xmldoc/formats/delbin.xml
xmldoc/formats/garmin_gpi.xml
xmldoc/formats/vpl.xml

index 1eaea9548ed4f99ffa05b412af0cc94309e1bd78..bd12e7581d18d957e45ddb91f1cf57bca94c3ddf 100644 (file)
@@ -123,6 +123,7 @@ typedef enum {
        XT_STREET_ADDR,
        XT_TIMET_TIME,
        XT_TRACK_NAME,
+       XT_TRACK_NEW,
        XT_URL,
        XT_URL_LINK_TEXT,
        XT_YYYYMMDD_TIME
@@ -926,7 +927,8 @@ gmsd_init(waypoint *wpt)
 /* usage: xcsv_parse_val("-123.34", *waypt, *field_map)                      */
 /*****************************************************************************/
 static void
-xcsv_parse_val(const char *s, waypoint *wpt, const field_map_t *fmp)
+xcsv_parse_val(const char *s, waypoint *wpt, const field_map_t *fmp, 
+               route_head **trk)
 {
     char *enclosure = "";
     geocache_data *gc_data = NULL;
@@ -1169,6 +1171,14 @@ xcsv_parse_val(const char *s, waypoint *wpt, const field_map_t *fmp)
     case XT_ROUTE_NAME:
        if (csv_route) csv_route->rte_name = csv_stringtrim(s, enclosure, 0);
        break;
+    case XT_TRACK_NEW: 
+       if (atoi(s) && csv_track && !QUEUE_EMPTY(&csv_track->Q)) {
+               *trk = route_head_alloc();
+               csv_track = *trk;
+
+               track_add_head(*trk);
+       }
+       break;
     case XT_TRACK_NAME:
        if (!csv_track) {
                csv_track = route_head_alloc();
@@ -1313,7 +1323,7 @@ xcsv_data_read(void)
              */
             while (s) {
                 fmp = (field_map_t *) elem;
-                xcsv_parse_val(s, wpt_tmp, fmp);
+                xcsv_parse_val(s, wpt_tmp, fmp, &trk);
 
                 elem = QUEUE_NEXT(elem);
                 
index 3b053937247a5e926fb42527761aa56bb8ecd7ac..61aa51b821dfc318d00d739efb34cf1f1d1aecd7 100644 (file)
@@ -888,6 +888,21 @@ static char openoffice[] =
 "IFIELD        GPS_PDOP, \"\", \"%f\"\n"
 "IFIELD        GPS_SAT, \"\", \"%d\"\n"
 "IFIELD        GPS_FIX, \"\", \"%s\"\n"
+;
+static char ricoh[] = 
+"DESCRIPTION Ricoh GPS Log File\n"
+"EXTENSION log\n"
+"DATATYPE TRACK\n"
+
+"FIELD_DELIMITER COMMA\n"
+"RECORD_DELIMITER NEWLINE\n"
+
+"IFIELD LON_DECIMAL,\"\",\"%f\"\n"
+"IFIELD LAT_DECIMAL,\"\",\"%f\"\n"
+"IFIELD ALT_METERS,\"\",\"%f\"\n"
+"IFIELD TRACK_NEW,\"\",\"%d\"\n"
+"IFIELD GMT_TIME,\"\",\"%d-%m-%Y %H:%M:%S\"\n"
+
 ;
 static char s_and_t[] = 
 "# gpsbabel XCSV style file\n"
@@ -1215,8 +1230,8 @@ static char xmapwpt[] =
 "IFIELD        IGNORE, \"\", \"%-.31s\"\n"
 "IFIELD        DESCRIPTION, \"\", \"%-.78s\"\n"
 ;
-style_vecs_t style_list[] = {{ "xmapwpt", xmapwpt } , { "xmap2006", xmap2006 } , { "xmap", xmap } , { "tomtom_itn", tomtom_itn } , { "tomtom_asc", tomtom_asc } , { "tabsep", tabsep } , { "sportsim", sportsim } , { "saplus", saplus } , { "s_and_t", s_and_t } , { "openoffice", openoffice } , { "nima", nima } , { "navigonwpt", navigonwpt } , { "mxf", mxf } , { "mapconverter", mapconverter } , { "kwf2", kwf2 } , { "ktf2", ktf2 } , { "kompass_wp", kompass_wp } , { "kompass_tk", kompass_tk } , { "igo2008_poi", igo2008_poi } , { "iblue747", iblue747 } , { "gpsman", gpsman } , { "gpsdrivetrack", gpsdrivetrack } , { "gpsdrive", gpsdrive } , { "geonet", geonet } , { "garmin_poi", garmin_poi } , { "garmin301", garmin301 } , { "fugawi", fugawi } , { "dna", dna } , { "custom", custom } , { "cup", cup } , { "csv", csv } , { "cambridge", cambridge } , { "arc", arc } ,  {0,0}};
-size_t nstyles = 33;
+style_vecs_t style_list[] = {{ "xmapwpt", xmapwpt } , { "xmap2006", xmap2006 } , { "xmap", xmap } , { "tomtom_itn", tomtom_itn } , { "tomtom_asc", tomtom_asc } , { "tabsep", tabsep } , { "sportsim", sportsim } , { "saplus", saplus } , { "s_and_t", s_and_t } , { "ricoh", ricoh } , { "openoffice", openoffice } , { "nima", nima } , { "navigonwpt", navigonwpt } , { "mxf", mxf } , { "mapconverter", mapconverter } , { "kwf2", kwf2 } , { "ktf2", ktf2 } , { "kompass_wp", kompass_wp } , { "kompass_tk", kompass_tk } , { "igo2008_poi", igo2008_poi } , { "iblue747", iblue747 } , { "gpsman", gpsman } , { "gpsdrivetrack", gpsdrivetrack } , { "gpsdrive", gpsdrive } , { "geonet", geonet } , { "garmin_poi", garmin_poi } , { "garmin301", garmin301 } , { "fugawi", fugawi } , { "dna", dna } , { "custom", custom } , { "cup", cup } , { "csv", csv } , { "cambridge", cambridge } , { "arc", arc } ,  {0,0}};
+size_t nstyles = 34;
 #else /* CSVFMTS_ENABLED */
 style_vecs_t style_list[] = {{0,0}};
 size_t nstyles = 0;
diff --git a/style/ricoh.style b/style/ricoh.style
new file mode 100644 (file)
index 0000000..11d1959
--- /dev/null
@@ -0,0 +1,13 @@
+DESCRIPTION Ricoh GPS Log File
+EXTENSION log
+DATATYPE TRACK
+
+FIELD_DELIMITER COMMA
+RECORD_DELIMITER NEWLINE
+
+IFIELD LON_DECIMAL,"","%f"
+IFIELD LAT_DECIMAL,"","%f"
+IFIELD ALT_METERS,"","%f"
+IFIELD TRACK_NEW,"","%d"
+IFIELD GMT_TIME,"","%d-%m-%Y %H:%M:%S"
+
index 76a47fdacea540fd21cbc587237de44de696baac..b3991129df7317f8c79e8697700eef46789331d6 100644 (file)
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.2 */
+/* ANSI-C code produced by gperf version 3.0.1 */
 /* Command-line: gperf -L ANSI-C -D -t xcsv_tokens.in  */
 /* Computed positions: -k'2,4-5,12,$' */
 
@@ -32,7 +32,7 @@
 #line 1 "xcsv_tokens.in"
 struct xt_mapping {char *name; int xt_token; };
 
-#define TOTAL_KEYWORDS 73
+#define TOTAL_KEYWORDS 74
 #define MIN_WORD_LENGTH 3
 #define MAX_WORD_LENGTH 21
 #define MIN_HASH_VALUE 7
@@ -59,7 +59,7 @@ hash (register const char *str, register unsigned int len)
       154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
       154, 154, 154, 154, 154,   0, 154,   0,   0,  10,
        55,  15,  50,  35, 154,  10,  40,  20,   0,  25,
-       25, 154,   0,  40,  15, 154,  20, 154,  25,  45,
+       25, 154,   0,  40,  15, 154,  20,   0,  25,  45,
       154, 154, 154, 154, 154,   0, 154, 154, 154, 154,
       154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
       154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
@@ -125,6 +125,8 @@ in_word_set (register const char *str, register unsigned int len)
       {"LAT_DECIMALDIR", XT_LAT_DECIMALDIR},
 #line 5 "xcsv_tokens.in"
       {"ANYNAME", XT_ANYNAME},
+#line 73 "xcsv_tokens.in"
+      {"TRACK_NEW", XT_TRACK_NEW},
 #line 10 "xcsv_tokens.in"
       {"DESCRIPTION", XT_DESCRIPTION},
 #line 22 "xcsv_tokens.in"
@@ -153,7 +155,7 @@ in_word_set (register const char *str, register unsigned int len)
       {"LON_DECIMALDIR", XT_LON_DECIMALDIR},
 #line 19 "xcsv_tokens.in"
       {"GEOCACHE_ISAVAILABLE", XT_GEOCACHE_ISAVAILABLE},
-#line 74 "xcsv_tokens.in"
+#line 75 "xcsv_tokens.in"
       {"URL", XT_URL},
 #line 30 "xcsv_tokens.in"
       {"HEART_RATE", XT_HEART_RATE},
@@ -217,7 +219,7 @@ in_word_set (register const char *str, register unsigned int len)
       {"LAT_HUMAN_READABLE", XT_LAT_HUMAN_READABLE},
 #line 9 "xcsv_tokens.in"
       {"COUNTRY", XT_COUNTRY},
-#line 73 "xcsv_tokens.in"
+#line 74 "xcsv_tokens.in"
       {"URL_LINK_TEXT", XT_URL_LINK_TEXT},
 #line 11 "xcsv_tokens.in"
       {"EXCEL_TIME", XT_EXCEL_TIME},
@@ -257,23 +259,23 @@ in_word_set (register const char *str, register unsigned int len)
       {"GEOCACHE_DIFF", XT_GEOCACHE_DIFF},
 #line 63 "xcsv_tokens.in"
       {"PATH_SPEED_MPH", XT_PATH_SPEED_MPH},
-#line 75 "xcsv_tokens.in"
+#line 76 "xcsv_tokens.in"
       {"YYYYMMDD_TIME", XT_YYYYMMDD_TIME}
     };
 
   static signed char lookup[] =
     {
       -1, -1, -1, -1, -1, -1, -1,  0,  1, -1,  2,  3, -1, -1,
-       4, -1, -1,  5, -1, -1, -1,  6, -1,  7, -1,  8, -1,  9,
-      10, 11, 12, -1, 13, 14, -1, 15, 16, -1, 17, 18, 19, -1,
-      -1, 20, -1, 21, 22, -1, -1, -1, -1, 23, -1, 24, 25, 26,
-      27, -1, 28, -1, 29, 30, -1, 31, -1, 32, 33, -1, 34, 35,
-      36, 37, -1, 38, 39, -1, 40, 41, 42, 43, 44, -1, -1, 45,
-      46, 47, 48, 49, 50, -1, -1, -1, 51, 52, -1, 53, 54, -1,
-      -1, 55, -1, -1, 56, 57, -1, -1, 58, -1, 59, 60, 61, -1,
-      62, 63, -1, -1, 64, -1, 65, -1, 66, -1, -1, -1, 67, -1,
-      -1, -1, 68, 69, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1,
-      -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72
+       4, -1, -1,  5, -1,  6, -1,  7, -1,  8, -1,  9, -1, 10,
+      11, 12, 13, -1, 14, 15, -1, 16, 17, -1, 18, 19, 20, -1,
+      -1, 21, -1, 22, 23, -1, -1, -1, -1, 24, -1, 25, 26, 27,
+      28, -1, 29, -1, 30, 31, -1, 32, -1, 33, 34, -1, 35, 36,
+      37, 38, -1, 39, 40, -1, 41, 42, 43, 44, 45, -1, -1, 46,
+      47, 48, 49, 50, 51, -1, -1, -1, 52, 53, -1, 54, 55, -1,
+      -1, 56, -1, -1, 57, 58, -1, -1, 59, -1, 60, 61, 62, -1,
+      63, 64, -1, -1, 65, -1, 66, -1, 67, -1, -1, -1, 68, -1,
+      -1, -1, 69, 70, -1, -1, -1, 71, 72, -1, -1, -1, -1, -1,
+      -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
index 40cbe1fe09a62162fc360a37ed0809181bb997fe..c0c106e7a1afb2489db682a27ac607677d6cacad 100644 (file)
@@ -70,6 +70,7 @@ STATE, XT_STATE
 STREET_ADDR, XT_STREET_ADDR
 TIMET_TIME, XT_TIMET_TIME
 TRACK_NAME, XT_TRACK_NAME
+TRACK_NEW, XT_TRACK_NEW
 URL_LINK_TEXT, XT_URL_LINK_TEXT
 URL, XT_URL
 YYYYMMDD_TIME, XT_YYYYMMDD_TIME
index 83909bcab67a0a8f4cfd923b4e67435785a13f8e..1ee2447c00670eac0bc090709ae7248bf97db626 100644 (file)
@@ -31,8 +31,3 @@
     </userinput>
   </para>
 </example>
-<<<<<<< delbin.xml
-
-
-=======
->>>>>>> 1.3
index 07959ba53474bc9f816bdfb45732d44e290a4fc5..db12f0cd7250403c97799d87190ba650db10238b 100644 (file)
@@ -15,7 +15,7 @@
 </para>
 <important>
 <para>
-   Creation timestamp issue: See option <link linkend="fmt_garmin_gpi.html#fmt_garmin_gpi_o_sleep">sleep</link> !!!
+   Creation timestamp issue: See the option <link linkend="fmt_garmin_gpi">sleep</link> !!!
 </para>
 <para>
        This module does not support direct transfer of .GPI files to
index b58ba771cc246de7a6defaaba9376f15e66a8b1f..9723a41642e5f9c600918bbf06140fc00a20bfdf 100644 (file)
@@ -9,6 +9,7 @@
 <simplelist columns="1">
 <member>
        2006 Honda Civic Hybrid
+</member>
 </simplelist>
 <para>
        Longging may be enabled by simultaneously holding down the MAP/GUIDE, MENU, and CANCEL